package com.ziki.account.test;

import lombok.Getter;

@Getter
public enum CustomExceptionInfoEnum {

    /**
     * 系统通用异常 001~500
     */
    REQUEST_PARAM_MISS("001", "请求缺少接口必要参数：{0}"),
    UNKNOWN_EXCEPTION("002", "未知异常"),
    SYSTEM_RUN_EXCEPTION("003", "系统运行异常"),
    TIMEOUT("004", "超时"),
    DATA_FORMAT_ERR("005", "数据格式异常"),
    INTERFACE_MESSAGE_ERR("006", "接口通讯异常"),
    IS_SOP_OCCUPY_ERR("007", "资源被占用，请稍后重试，详情：sop正在能力测试中，不可修改"),
    TOKEN_ERROR("008", "token错误，详情：{0}"),
    REDIS_INTERCEPT_ERROR("009", "redis接口拦截异常，详情：{0}"),
    AI_AUTH_ERROR("010", "授权验证未通过，请检查授权状态后重试！"),
    LISTENER_EXIST("011", "Listener {0} {1} 已启动"),
    REMOTE_EXCEPTION("012", "{0}"),
    SERVICE_NOT_FOUND("013", "服务未找到，请检查服务是否启动！"),
    REMOTE_REQUEST_EXCEPTION("014", "调用远程服务请求失败, status {0}, reason {1}"),
    PATH_NOT_EXIST("015", "文件目录不存在 {0}"),
    SERVER_CONNECT_ERROR("016", "服务地址 {0} 不可用，请确认服务状态"),
    SERVER_TOKEN_ERROR("017", "服务不可用或权限已过期，请尝试以下操作：确认服务地址填写正确/确认远程服务可用/更新权限"),
    SERVER_TOKEN_ERROR_ARS("018", "服务不可用或权限已过期，请到设置->服务节点->点击更新权限按钮"),
    PATH_CAN_NOT_CONNECT("019", "路径 {0} 无法访问，请确认路径状态，详情：{1}"),

    /**
     * 用户异常 501~800
     */
    USER_ALREADY_EXISTS("501", "用户【{0}】已存在"),
    USER_NO_EXISTS("502", "用户【{0}】不存在"),
    PASSWORD_ERROR("503", "密码不正确"),
    OLD_PASSWORD_ERROR("504", "原密码不正确"),
    UPDATE_PASSWORD_ERROR("505", "更新密码失败"),
    USER_UNAUTHORIZED("506", "用户【{0}】未授权该操作"),
    USER_TASK_ERROR("507", "该用户在标注任务流程中，无法删除，任务id【{0}】"),
    ADMIN_USER_DELETE_ERROR("508", "不能删除其他管理员用户"),
    USER_AUTH_EXPIRE("509", "没有权限或权限已过期"),
    USER_AUTH_PROJECT_AI_LOCKED("510", "项目在训练或测试中，不能进行修改操作"),
    USER_AUTH_PROJECT_BUSINESS_LOCKED("511", "其他用户正在对该项目进行操作，不能进行修改操作"),
    USER_AUTH_LABEL_CONFIG_UN_CONFIRM("512", "项目存在未确认的标签，不能进行修改操作"),
    USER_PROJECT_CONFIG_UPDATE_ERROR("513", "配置已存在，不能新增配置"),
    USER_PROJECT_CLEAN_AQIMG_ERROR("514", "正在清理图片，不能进行图片操作"),
    AUTH_ERROR("515", "用户名或密码不正确"),
    /**
     * 传输数据异常 801~1100
     */
    UPLOAD_PROJECT_FOLDER_ERROR("801", "上传项目【{0}】失败：{1}"),
    DOWNLOAD_PROJECT_FOLDER_ERROR("802", "下载项目【{0}】失败：{1}"),
    INIT_ZIP_FILE_FAIL("803", "构建压缩文件失败"),
    EXPORT_ZIP_FILE_FAIL("804", "导出压缩文件失败：{0}"),
    EXPORT_EXCEL_FAIL("805", "导出excel文件失败：{0}"),
    READ_EXCEL_FAIL("806", "读取excel文件失败：{0}"),
    WRITE_FILE_FAIL("807", "写入文件失败：{0}"),
    IMPORT_PROJECT_WITH_BLOCK_FAIL("808", "导入项目文件失败：{0}"),
    IMPORT_MODEL_WITH_BLOCK_FAIL("809", "导入项目文件失败：{0}"),
    ZIP_FILE_EXCEL_DATA_MISS("810", "项目压缩包文件丢失，请核实压缩包内容！"),
    UNZIP_FILE_FAIL("811", "解压失败：{0}"),
    PROJECT_ALREADY_EXIST("812", "项目【{0}】已存在"),
    MODEL_ALREADY_EXIST("813", "模型【{0}】已存在"),
    ZIP_FILE_FAIL("814", "压缩失败：{0}"),
    DOWNLOAD_FILE_FOLDER_FAIL("815", "下载项目文件夹出错"),
    MAP_TO_BEAN_FAIL("816", "map转化为实体bean失败"),
    IMG_FILE_DAMAGED("817", "导入图片文件已损坏"),
    ZIP_MD5_CHECK_ERROR("818", "压缩包 {0} MD5值错误，应为 {1}，实际为 {2}"),
    FILE_MD5_CHECK_ERROR("819", "文件 sha256 哈希值错误，应为 {0}，实际为 {1}"),
    UN_SUPPORT_DATA_GERBER("820", "文件格式错误，暂不支持包含 Gerber 图的数据"),
    PROJECT_SNAPSHOT_SQL_EXPORT_ERROR("830", "commit出错，导出sql文件失败"),
    COMMIT_PROJECT_VERSION_ERROR("831", "保存版本失败"),
    RESET_PROJECT_VERSION_ERROR("832", "切换指定版本失败"),
    LAST_VERSION_HASH_CONFLICT("833", "保存版本与当前一致，无需保存"),
    VERSION_SYNC_ERROR("834", "版本未完成同步，请稍后再试"),
    DELETE_ENABLE_VERSION_ERROR("835", "启用版本无法删除，请勿勾选启用版本"),
    DOWNLOAD_FILE_ERROR("836", "下载文件异常, {0}"),
    FORMAT_IMG_NUM_ERROR("837", "重新构建图片异常，需求将图片切割为 {0} 图，实际只有 {2} 图"),
    VERSION_IMPORT_ERROR("838", "导入版本错误：{0}"),
    OPERATE_DATA_NOT_EXIST("839", "操作数据不存在，请重试"),
    PATH_USED_BY_ANOTHER_TASK("840", "路径 {0} 正在被其他任务使用，请联系管理员或稍后重试"),
    VERSION_EXPORT_ERROR("841", "导出版本错误：{0}"),
    ZIP_FORMAT_ERR("842", "压缩包【{0}】格式异常"),

    /**
     * AI工程管理异常 1101~1400
     */
    IMPORT_COMPRESS_CONFIG_FAIL("1101", "导入压缩配置表失败"),
    USER_PROJECT_MODEL_EXIST("1102", "用户该项目下已存在同名模型"),
    COMPRESS_CONFIG_WEIGHT_ERROR("1103", "压缩配置表层别【{0}】权重配置错误，请修改"),
    IMPORT_COMPRESS_CONFIG_SAME_NAME_ERROR("1104", "项目中已有同名压缩配置表，请先修改此压缩配置表的名称"),
    CREATE_NEW_FILE_ERROR("1105", "新建文件出错：{0}"),
    CREATE_AQ_LABEL_ERROR("1106", "生成aqlabel文件出错：{0}"),
    COMPRESS_CONFIG_ONLY_ONE("1107", "同一个项目中只能启用一个压缩配置表"),
    DUPLICATE_AUTO_CREATE_ENGIN("1108", "请勿重复创建"),
    MODEL_NO_COMPRESS_CONFIG("1109", "模型【{0}】中没有压缩配置表，无法上推"),
    MODEL_IS_OCCUPY("1110", "该模型被占用，请稍后再试"),
    PROJECT_IS_OCCUPY("1111", "项目被占用，请稍后再试"),
    COMPRESS_CONFIG_SAME_NAME_ERROR("1112", "项目中已有该名称的压缩配置表，请重新输入"),
    MODEL_EMPTY_ERROR("1113", "【{0}】模型数据【{1}】为空，请先在工程列表中训练然后同步数据到此模型中"),
    TRAIN_MODEL_ERROR("1114", "训练生成的模型不正确，可能原因：图片样本数不足等"),
    MODEL_FILE_NUM_ERROR("1115", "工程【{0}】模型数据【{1}】错误：模型文件个数不正确，请先正确训练完成后重试"),
    MODEL_NO_COMPRESS_ERROR("1116", "该模型中缺少压缩配置表，请先同步"),
    MODEL_NO_EXISTS("1117", "模型数据不存在，请先正确训练完成后重试"),
    ENGIN_NO_EXISTS("1118", "工程不存在"),
    ENGIN_PARAM_CAN_NOT_CHANGE("1119", "工程该参数不可修改"),
    CLS_LOAD_TASK_JSON_ERROR("1120", "分类训练加载task.json异常"),
    DATA_SET_EMPTY("1121", "可运行数据集为空，终止运行"),
    MODEL_EMPTY("1122", "模型数据为空，请先拉取数据再测试"),
    ENGIN_MODEL_EMPTY_ERROR("1123", "【{0}】模型数据【{1}】为空，请先训练生成模型后再测试"),
    CREATE_CONFUSE_MATRIX_ERROR("1124", "生成混淆矩阵数据时发生错误"),
    CREATE_TEST_REPORT_ERROR("1125", "生成测试报告时发生错误"),
    IMPORT_MODEL_FILE_ERROR("1126", "解析模型文件出错"),
    IMPORT_MODEL_SAME_PROJECT("1127", "不能导入当前项目的模型"),
    IMPORT_MODEL_STATUS_ERROR("1128", "不能导入正在测试中的模型"),
    GPU_OVERFLOW_ERROR("1129", "训练指定gpu数量大于系统最大gpu数量，请更改后重试"),
    ENGIN_TRAINING_OR_TESTING("1130", "工程正在训练/测试中，请取消训练/测试后重试"),
    MODEL_TESTING("1131", "模型正在测试中，请取消测试后重试"),
    LABEL_NAMES_NOT_IN_LABEL_CONFIG("1132", "数据集【{0}】图片【{1}】的标签【{2}】，在标签配置表中不存在，请匹配或修改图片标签后重试"),
    MODEL_TEST_ERROR("1133", "模型测试异常，数据集【{0}】图片【{1}】没有测试结果"),
    MODEL_TEST_RESULT_EMPTY("1134", "模型[{0}]缺少对应AI测试结果，无法重置图表，请测试后重试"),
    MODEL_DOWNLOAD_EMPTY("1135", "选中模型数据为空，不可推送或拉取"),
    TRAIN_ERROR("1136", "训练异常：{0}"),
    GPU_NUM_ERROR("1137", "GPU分配异常，分配数量{0}，实际可用数量{1}"),
    TRAIN_TASK_RUNNING("1138", "已有训练任务在排队或进行中"),
    TEST_TASK_RUNNING("1139", "已有测试任务在排队或进行中"),
    TEST_ERROR("1140", "测试异常：{0}"),
    TRAIN_TIMEOUT("1141", "训练程序超过10分钟无响应已终止训练，可能显存不够或发生其他错误，请稍候重试或联系管理员。"),
    TRAIN_PROCESS_NO_COMPLETE("1142", "训练未正常完成，原因：可能图片、label等文件错误导致训练意外终止"),
    TEST_TIMEOUT("1143", "测试程序超过10分钟无响应已终止测试，可能显存不够或发生其他错误，请稍候重试或联系管理员。"),
    TEST_PROCESS_NO_COMPLETE("1144", "测试未正常完成，原因：可能模型、图片、label等文件错误导致测试意外终止"),
    CHECK_DEFAULT_MODEL("1145", "请检查默认模型状态后重试"),
    MODULE_TYPE_ERROR("1146", "上传失败，请选择分类模型"),
    SHARE_CODE_EXPIRED("1147", "此共享码已失效，请重新输入"),

    /**
     * 项目管理异常 1401~1700
     */
    NO_COMPRESS_CONFIG("1401", "没有可用的压缩配置表，请先上传或者启用压缩配置表"),
    PROJECT_NO_EXIST("1402", "项目id为【{0}】的项目不存在"),
    PROJECT_SAME_NAME("1403", "已有同名项目【{0}】，请勿重复创建"),
    NEW_PROJECT_ERROR("1404", "新建项目错误：{0}"),
    READ_AQ_LABEL_ERROR("1405", "读取【{0}】出错，请检查该文件是否符合规范"),
    LABEL_EXIST("1406", "项目下存在同名标签"),
    LABEL_IMPORT_FILE_FAIL("1407", "导入标签数据文件出错"),
    LABEL_EXPORT_FILE_FAIL("1408", "导出标签数据文件出错"),
    AUTHORIZED_USER_NO_EXISTS("1409", "被授权用户不存在"),
    AUTHORIZED_USER_PROJECT_INFO_EXIST("1410", "被授权用户授权信息已存在"),
    AUTHORIZED_INFO_NO_EXISTS("1411", "ID为【{0}】的授权信息不存在"),
    ENABLE_LABEL_TYPE_NO_EXISTS("1412", "该项目或任务未指定启用标签类型"),
    DATA_SET_CODE_EXISTS("1413", "数据集编码【{0}】已存在"),
    DATA_SET_CODE_NO_EXISTS("1414", "数据集编码【{0}】不存在"),
    DATA_SET_TASK_CREATE_STATUS_ERROR("1415", "不能为状态为【{0}】的数据集创建任务"),
    DATA_CENTER_LABEL_EXIST("1416", "数据中心标签已存在"),
    ENGIN_LABEL_NOT_EMPTY("1417", "工程标签不能为空"),
    CONTAINS_DATA_SET_NOT_ARCHIVE("1418", "存在【{0}】的数据集，不能修改或删除标签"),
    LABEL_NO_EXIST("1419", "ID为【{0}】的标签不存在或已被删除"),
    ENGIN_CUSTOMER_LABEL_EXIST("1420", "工程标签【{0}】存在与其它客户标签的对应关系"),
    DUPLICATE_DATA_CENTER_LABEL("1421", "文件中存在同名数据中心标签【{0}】"),
    DUPLICATE_ENGIN_LABEL("1422", "文件中存在同名工程标签【{0}】"),
    ENGIN_LABEL_EXIST("1423", "工程标签已存在"),
    DATA_SET_MERGE_STATUS_ERROR("1424", "只能合并数据集状态为【待交叉标注】或【已归档】的数据集"),
    DATA_SET_CREATE_ERROR("1425", "新建数据集出错"),
    DATA_SET_MERGE_ERROR("1426", "合并数据集失败"),
    DATA_SET_ARCHIVE_ERROR("1427", "数据集整体归档失败"),
    DATA_SET_ARCHIVE_STATUS_ERROR("1428", "只能归档数据集状态为【审核中】的数据集"),
    DATA_SET_DELETE_STATUS_ERROR("1429", "不能删除数据集状态为【{0}】的数据集"),
    DATA_SET_SPLIT_ERROR("1430", "数据集拆分异常"),
    DATA_SET_BATCH_ARCHIVE_ERROR("1431", "只能归档状态为【审核中】的数据集，当前数据集状态为【{0}】"),
    DATA_SET_BATCH_ARCHIVE_EXCEPTION("1432", "数据集分批归档异常"),
    DATA_SET_MERGE_STATUS_SAME_ERROR("1433", "合并数据集数据集状态需要完全相同"),
    DATA_SET_MATCH_STATUS_ERROR("1434", "数据集【{0}】标签匹配错误，只能匹配状态为【待交叉标注】或【已归档】的数据集"),
    DATA_SET_EXIST_LOADING("1435", "操作失败，存在【数据加载中】的数据集"),
    DATA_SET_SPLIT_STATUS_ERROR("1436", "不能拆分数据集状态为【{0}】的数据集"),
    PROJECT_TRAINING_OR_TESTING("1437", "项目【{0}】正在训练/测试，请取消训练/测试后再进行删除操作"),
    DATA_SET_CANCEL_STATUS_ERROR("1438", "只能取消状态为【标注中】或【审核中】或【质量考核中】的数据集，当前数据集状态为【{0}】"),
    LABEL_UPLOAD_EXCEL_MATCH_ERROR("1439", "文件中存在工程标签【{0}】对应多个客户标签"),
    LABEL_UPLOAD_DUPLICATE_DATA_CENTER_LABEL("1440", "文件中存在重复数据中心标签【{0}】"),
    LABEL_CUSTOMER_DEGREE_ERROR("1441", "客户标签【{0}】格式错误，不能输入特殊字符，不能以程度结尾"),
    LABEL_ENGIN_DEGREE_ERROR("1442", "工程标签【{0}】格式错误，不能输入特殊字符，必须以程度结尾"),
    LABEL_DATA_CENTER_DEGREE_ERROR("1443", "数据中心标签【{0}】格式错误，不能输入特殊字符，不能以程度结尾"),
    SYNC_LABEL_CONFIG_CONFLICT("1444", "同步标签异常，出现子标签【{0}】对应多个父标签【{1}】【{2}】，请修改配置后重试"),
    CREATE_AQIMG_ERROR("1445", "创建aqimg出错：{0}"),
    GET_AQIMG_INFO("1446", "从aqimg中获取信息时出错：{0}"),
    MULTIPART_FILE_TO_FILE("1447", "multipartFile转file出错：{0}"),
    NO_MODEL_FILE("1448", "没有对应的_model文件：{0}"),
    LABEL_CONFLICT_EXIST("1449", "存在有冲突的标签【{0}】，请先解决冲突后重试"),
    DATA_SET_CONTAINS_LABEL("1450", "数据集【{0}】包含选中标签"),
    PROJECT_VERSION_SYNCED("1451", "项目版本已存在，图片文件已同步完成，版本号为【{0}】"),
    PROJECT_VERSION_CHANGED("1452", "操作失败，请保存版本或清除修改后重试"),
    PROJECT_SYNC_TASK_RUNNING("1453", "项目存在正在运行的同步任务，请取消任务后重试"),
    PROJECT_SYNC_TASK_NOT_RUNNING("1454", "项目没有正在运行的同步任务"),
    PROJECT_SYNC_TASK_EXIST_PUSH("1455", "存在未关闭的推送任务，请取消后重试"),
    PROJECT_SYNC_TASK_EXIST_PULL("1456", "存在未关闭的推送拉取，请取消后重试"),
    PROJECT_PULL_IMG_ERROR("1457", "拉取图片存在下载失败的图片，拉取失败图片数 {0}"),
    DATA_SET_UPLOAD_STATUS_ERROR("1458", "只能导入数据到【待交叉标注】【已归档】的数据集"),
    ARS_PATH_CONNECT_ERROR("1459", "无法连接到ARS共享目录 {0}，请确保共享目录可以访问，错误详情：{1}"),
    PROJECT_VERSION_SOURCE_NOT_COMPLETE("1460", "项目版本文件不完成，请选择全量包导出，或者下载当前项目的版本标识导出增量包"),
    PARENT_LABEL_ERROR("1461", "父标签冲突，请刷新后重试"),
    LABEL_DUPLICATE_ERROR("1462", "标签存在重复标签 {0}，请处理后再操作"),

    /**
     * 标注任务异常 1701~2000
     */
    TASK_ALREADY_FINISHED("1701", "该任务已完成"),
    TASK_PROGRESS_ERROR("1702", "该任务图片未标注完"),
    TASK_NO_EXIST("1703", "任务不存在"),
    TASK_CREATE_ERROR("1704", "创建任务失败"),
    TASK_PHOTO_MISS_ERROR("1705", "图片不存在"),
    CONTAINS_NULL_LABEL("1706", "操作失败，数据集存在没有对应标签的图片"),
    QUALITY_DATA_SET_STATUS_ERROR("1707", "只能给【待交叉标注】或【已归档】的数据集创建质量考核任务"),
    LABEL_COUNT_ZERO("1708", "标签配置表中【{0}】没有可用标签，请添加标签配置后重试"),
    TASK_STOPPING("1709", "任务正在停止，请稍后..."),

    /**
     * 标准管理异常 2001~2400
     */
    ADD_SOP_IMG_ERROR("2001", "添加sop示例图片失败"),
    SOP_TASK_COUNT_GT_IMG_SUM("2002", "测试数量不能大于图片总数"),
    SOP_TASK_NO_EXISTS("2003", "能力测试任务【{0}】不存在或者已删除"),
    SOP_TASK_ALREADY_END("2004", "能力测试任务【{0}】已结束"),
    SOP_TASK_NOT_END("2005", "任务【{0}】在能力测试过程中，不能删除"),
    DELETE_SOP_IMG_ERROR("2006", "删除sop示例图片失败"),
    ADD_SOP_LAYER_ERROR("2007", "区域【{0}】-父类【{1}】中，已有同名{2}【{3}】，请修改后重试"),
    ADD_SOP_SUBCLASS_ERROR("2009", "区域【{0}】-父类【{1}】-层别【{2}】中，已有同名子类【{3}】，请修改后重试"),
    SOP_TASK_COUNT_LT_EFFECTIVE_SOP("2010", "测试数量不能小于有效SOP数量"),
    SOP_TASK_EXPIRE("2011", "能力测试任务超过时限【{0}】min"),
    ADD_SOP_PARENT_ERROR("2012", "区域【{0}】中，已有同名父类【{1}】，请修改后重试"),
    IMPORT_SOP_TABLE_FORMAT_ERROR("2013", "SOP表导入失败：请检查Excel表格式。"),
    IMPORT_SOP_LABEL_OUT_OF_BOUND("2014", "标签越界异常：SOP表中父类标签、层别/等级或子类长度超过12"),
    IMPORT_SOP_TABLE_TYPE_ERROR("2015", "SOP表类型错误：请检查是否数据中心/工程SOP"),
    IMPORT_SOP_UNKNOWN_ERROR("2016", "SOP导入失败：未知错误"),
    ;

    /**
     * 异常码
     */
    private final String code;
    private final String name;

    CustomExceptionInfoEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

}
